package com.wlf.freemarker.test;

import freemarker.cache.FileTemplateLoader;
import freemarker.cache.StringTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
import org.junit.Test;

import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @ProjectName: autoCode
 * @Package: com.wlf.freemarker.test
 * @ClassName: FreeMarkerTest01
 * @Author: wanglf
 * @Description:
 * @Date: 2020/8/29 15:45
 * @Version: 1.0
 */
public class FreeMarkerTest01 {

    @Test
    public void test01()throws Exception{
        //1 创建FreeMarker 配置类
        Configuration cfg = new Configuration();
        //2 指定模板加载器：将模板存入缓存
        FileTemplateLoader fileTemplateLoader = new FileTemplateLoader(new File("templates"));

        cfg.setTemplateLoader(fileTemplateLoader);
        //3 获取模板
        Template template = cfg.getTemplate("hello.ftl");

        //4 构造数据模型
        Map<String,Object> model = new HashMap<String, Object>();
        model.put("user","qaxwdc");
        model.put("flag","2");
        List<String> list = new ArrayList<String>();
        list.add("星期一");
        list.add("星期二");
        list.add("星期三");
        list.add("星期四");

        model.put("weeks",list);
        //5 文件输出,处理模型
        template.process(model,new FileWriter(new File("C:\\Users\\jessi\\Desktop\\github\\hello.txt")));

        //输出到控制台
        //template.process(model,new PrintWriter(System.out));
    }


    @Test
    public void test02()throws Exception{
        //1 创建FreeMarker 配置类
        Configuration cfg = new Configuration();
        //2 指定模板加载器：将模板存入缓存
        StringTemplateLoader stringTemplateLoader = new StringTemplateLoader();


        cfg.setTemplateLoader(stringTemplateLoader);

        String templateString = "hello world:${user}";

        //3 获取模板
        Template template = new Template("name1", new StringReader(templateString),cfg);


        //4 构造数据模型
        Map<String,Object> model = new HashMap<String, Object>();
        model.put("user","123321");
        model.put("flag","1");
        //5 文件输出,处理模型
        template.process(model,new FileWriter(new File("C:\\Users\\jessi\\Desktop\\github\\hello.txt")));
    }
}
